가중치 평균

AI
qwen-3-235b-a22b-instruct-2507
작성자
익명
작성일
2026.01.12
조회수
6
버전
v1

가중치 평균

개요

가중치 평균(Weighted Average)은 단순 평균(Arithmetic Mean)과 달리 각 신뢰도를 반영하기 위해 가중치(Weight)를 부여하여 계산하는 평균 방식입니다. 특히 데이터과학모델 평가 분야에서 다양한 지표를 종합하거나, 클래스 불균형이 있는 분류 문제에서 성능을 평가할 때 널리 사용됩니다.

단순 평균은 모든 데이터 포인트를 동등하게 취급하지만, 가중치 평균은 특정 요소가 더 큰 영향을 미치도록 조정할 수 있어, 현실 세계의 복잡한 데이터 구조를 더 정확하게 반영할 수 있습니다.


가중치 평균의 수학적 정의

가중치 평균은 다음과 같은 수식으로 정의됩니다:

$$ \bar{x}_w = \frac{\sum_{i=1}^{n} w_i x_i}{\sum_{i=1}^{n} w_i} $$

여기서: - $ x_i $: $ i $번째 데이터 값 - $ w_i $: $ i $번째 데이터에 부여된 가중치 (단, $ w_i \geq 0 $) - $ \bar{x}_w $: 가중치 평균

예시

예를 들어, 세 개의 정밀도(Precision) 값이 각각 0.9, 0.7, 0.5이고, 각각의 샘플 수(가중치)가 100, 200, 300이라고 가정합시다. 이 경우 가중치 평균 정밀도는:

$$ \bar{p} = \frac{(0.9 \times 100) + (0.7 \times 200) + (0.5 \times 300)}{100 + 200 + 300} = \frac{90 + 140 + 150}{600} = \frac{380}{600} \approx 0.633 $$

이 값은 단순 평균 $ (0.9 + 0.7 + 0.5)/3 = 0.7 $ 과는 다르며, 더 많은 샘플을 가진 클래스의 성능에 더 큰 영향을 받습니다.


모델 평가에서의 가중치 평균 활용

분류 모델의 성능을 평가할 때, 특히 다중 클래스 분류(Multi-class Classification) 문제에서 각 클래스의 샘플 수가 불균형한 경우, 단순 평균은 왜곡된 결과를 초래할 수 있습니다. 이때 가중치 평균을 사용하여 각 클래스의 성능 지표를 샘플 수에 비례하여 통합합니다.

주요 평가 지표에서의 활용

1. 가중치 평균 정밀도 (Weighted Precision)

각 클래스의 정밀도를 해당 클래스의 샘플 수로 가중 평균합니다.

$$ \text{Precision}_{\text{weighted}} = \sum_{c=1}^{C} \left( \frac{N_c}{N} \times \text{Precision}_c \right) $$

  • $ N_c $: 클래스 $ c $의 샘플 수
  • $ N $: 전체 샘플 수
  • $ C $: 클래스 수

2. 가중치 평균 재현율 (Weighted Recall)

재현율도 동일한 방식으로 가중 평균을 적용할 수 있습니다.

$$ \text{Recall}_{\text{weighted}} = \sum_{c=1}^{C} \left( \frac{N_c}{N} \times \text{Recall}_c \right) $$

3. 가중치 평균 F1 점수 (Weighted F1-Score)

F1 점수는 정밀도와 재현율의 조화 평균이지만, 클래스별 F1 점수를 가중 평균할 수도 있습니다. 이 경우 각 클래스의 F1 점수에 샘플 수를 가중치로 사용합니다.

from sklearn.metrics import f1_score

# 예시: 실제 라벨과 예측 라벨
y_true = [0, 1, 2, 2, 1, 0]
y_pred = [0, 1, 1, 2, 1, 0]

# 가중치 평균 F1 점수 계산
f1_weighted = f1_score(y_true, y_pred, average='weighted')
print(f"가중치 평균 F1 점수: {f1_weighted:.3f}")


가중치 평균 vs. 다른 평균 방식

방식 설명 사용 사례
마이크로 평균(Micro) 모든 클래스의 지표를 샘플 단위로 통합하여 계산 클래스 불균형이 심할 때, 전체 예측 정확도를 중시할 때
마크로 평균(Macro) 각 클래스의 지표를 동등하게 평균 모든 클래스가 동일한 중요도를 가질 때
가중치 평균(Weighted) 각 클래스의 지표를 샘플 수에 따라 가중 평균 클래스 불균형이 존재하지만, 전체 분포를 반영하고 싶을 때

🔍 참고: scikit-learn[classification_report](/doc/%EA%B8%B0%EC%88%A0/%EB%8D%B0%EC%9D%B4%ED%84%B0%EA%B3%BC%ED%95%99/%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EB%B6%84%EC%84%9D%20%EB%8F%84%EA%B5%AC/classification_report) 함수는 기본적으로 macro avg, weighted avg를 모두 출력하여 비교를 용이하게 합니다.


장점과 한계

✅ 장점

  • 현실 반영력 향상: 각 클래스의 샘플 수를 반영하여 더 현실적인 성능 평가 가능.
  • 불균형 데이터에 강함: 드문 클래스보다 빈번한 클래스의 성능에 더 큰 비중을 두므로, 실제 운영 환경에서의 성능을 더 잘 예측함.
  • 해석 용이성: 전체 데이터 분포를 반영한 단일 지표 제공.

❌ 한계

  • 다수 클래스 편향: 매우 큰 클래스가 평균을 지배할 수 있어 소수 클래스의 성능 저하를 간과할 수 있음.
  • 가중치 선택의 주관성: 가중치가 항상 샘플 수일 필요는 없으며, 도메인 지식에 따라 달라질 수 있음.

관련 문서 및 참고 자료

📘 Tip: 클래스 불균형이 심한 문제에서는 가중치 평균 외에도 샘플 재조정(Resampling), 비용 민감 학습(Cost-sensitive Learning), 또는 ROC-AUC와 같은 지표를 병행 사용하는 것이 좋습니다.


가중치 평균은 데이터과학에서 정량적 평가를 보다 정교하게 수행할 수 있도록 해주는 핵심 기법 중 하나입니다. 특히 모델의 실용적 성능을 평가할 때, 단순 통계보다 현실에 가까운 인사이트를 제공하므로, 분석가라면 반드시 이해하고 활용할 수 있어야 합니다.

AI 생성 콘텐츠 안내

이 문서는 AI 모델(qwen-3-235b-a22b-instruct-2507)에 의해 생성된 콘텐츠입니다.

주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.

이 AI 생성 콘텐츠가 도움이 되었나요?